public class Test01 {
    public void setZeroes(int[][] matrix) {
        int m = matrix.length; // 矩阵的行数
        int n = matrix[0].length; // 矩阵的列数

        boolean[] rows = new boolean[m]; // 用于记录需要置零的行
        boolean[] cols = new boolean[n]; // 用于记录需要置零的列
        // 遍历矩阵，如果某个元素为0，则将对应的行和列标记为需要置零
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (matrix[i][j] == 0) {
                    rows[i] = true;
                    cols[j] = true;
                }
            }
        }

        // 根据标记数组，将对应的行和列置零
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (rows[i] || cols[j]) {
                    matrix[i][j] = 0;
                }
            }
        }
    }
}
